Trusted and secure boot systems allow computing devices to verify software and firmware modules as they are loaded, establishing a chain of trust for the computing device. For example, a typical secure boot system may verify boot firmware, firmware drivers, an operating system loader, and an operating system of the computing device as they are loaded. The root of trust for secure boot may include, for example, a trusted platform module or other secure storage that includes one or more keys used to verify the platform firmware.
Certain computing devices may include one or more field programmable gate arrays (FPGAs). FPGAs are computer processing circuits that include configurable logical blocks, data interconnects, and other programmable digital logic resources. Thus, an FPGA may be configured to perform various tasks typically performed by an application-specific integrated circuit (ASIC) or other fixed hardware resource. An FPGA may be configured by installing an FPGA image, which may include a hardware definition such as a bitstream, a hardware definition language program (e.g., a VHDL program), or other hardware definition.